perm filename FDERIV.MCL[TIM,LSP] blob
sn#619505 filedate 1981-10-17 generic text, type C, neo UTF8
COMMENT ā VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 (defun der1 (a) `(quotient ,(deriv a) ,a))
C00004 ENDMK
Cā;
(defun der1 (a) `(quotient ,(deriv a) ,a))
(defun deriv (a)
(cond
((atom a)
(cond ((eq a 'x) 1)
(t 0)))
((eq (car a) 'plus)
`(plus . ,(mapcar 'deriv (cdr a))))
((eq (car a) 'difference)
`(difference . ,(mapcar 'deriv
(cdr a))))
((eq (car a) 'times)
`(times
,a
(plus . ,(mapcar 'der1 a))))
((eq (car a) 'quotient)
`(difference
(quotient
,(deriv (cadr a))
(caddr a))
(quotient
,(cadr a)
(times
,(caddr a)
,(caddr a)
,(deriv (caddr a))))))
(t 'error)))
(defun run ()
(prog (i formula)
(setq i 0)
(setq formula '(plus (times 3 x x) (times a x x) (times b x) 5))
q (deriv '(plus (times 3 x x) (times a x x) (times b x) 5))
(cond ((lessp (setq i (add1 i)) 500.) (go q)))))
(defun timit ()
((lambda (t1 x gt)
(run)
(setq t1 (- (runtime) t1))
(setq gt (- (status gctime) gt))
(print (list 'runtime
(quotient (float (- t1 gt))
1000000.)))
(print (list 'gctime
(quotient (float gt) 1000000.))))
(runtime) ()(status gctime)))